package day14_io.作业14;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;

//2.假设从入学开始所有书写的Java类代码都在E:\csw\Demo\src文件夹下，包括多级子文件夹。
// 使用IO流获取从入学开始，到目前为止已经写了多少行Java代码。
//提示：其实就是获取E:\csw\Demo\src文件夹及其子文件夹下的所有.java文件，
// 使用readLine()读取其中每一行，每读取一行，行数加1。所有的文件读取完毕，得到总共已经写的Java代码行数。需要结合递归实现。
public class 可选2 {
    private static int sum=0;

    public static void main(String[] args) throws Exception{
        File file = new File("E:\\csw\\Demo\\src");
        show(file);
        System.out.println(sum);
    }
//    public static void show(File file) throws Exception{
//        File[] files = file.listFiles();
//        for (File file1 : files) {
//            if (file1.isFile()) {
//                String name = file1.getName();
//                if (name.endsWith(".java")) {
//                    FileInputStream fis = new FileInputStream(file1.getAbsolutePath());
//                    int i;
//                    while ((i = fis.read()) != -1) {
//                        if ((char)i=='\n'){
//                            sum++;
//                        }
//                    }
//                    fis.close();
//                }
//            }else{
//                show(file1);
//            }
//        }
//    }
    public static void show(File file) throws Exception{
        File[] files = file.listFiles();
        for (File file1 : files) {
            if (file1.isFile()){
                BufferedReader br = new BufferedReader(new FileReader(file1.getAbsolutePath()));
                String s;
                while ((s=br.readLine())!=null){
                    sum++;
                }
                br.close();
            }else{
                show(file1);
            }
        }
    }
}
